home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / PWAEMC13.ZIP / EMEC.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-02-27  |  9KB  |  594 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     String   TSTRING001(9)
  24.     String   TSTRING002(9)
  25.     String   STRING003
  26.     String   STRING004
  27.     String   STRING005
  28.     String   STRING006
  29.     String   STRING007
  30.     String   STRING008
  31.     String   STRING009
  32.     String   STRING010
  33.     String   STRING011
  34.     String   STRING012
  35.     String   STRING013
  36.     String   STRING014
  37.     String   STRING015
  38.     String   STRING016
  39.     String   STRING017
  40.     String   STRING018
  41.     String   STRING019
  42.     String   STRING020
  43.     String   STRING021
  44.     Time     TIME001
  45.     Time     TIME002
  46.     Int      TINT001(9)
  47.     Int      INT002
  48.     Int      INT003
  49.     Int      INT004
  50.     Int      INT005
  51.     Int      INT006
  52.     Int      INT007
  53.     Int      INT008
  54.     Int      INT011
  55.     Int      INT013
  56.     Int      INT014
  57.     Int      INT015
  58.     Declare  Procedure PROC001()
  59.     Declare  Procedure PROC002()
  60.     Declare  Procedure PROC003()
  61.     Declare  Procedure PROC004()
  62.     Declare  Procedure PROC005()
  63.     Declare  Procedure PROC006()
  64.     Declare  Procedure PROC007(Int INT016, Int INT017)
  65.     Declare  Procedure PROC008(Int INT009, Int INT010)
  66.     Declare  Procedure PROC009(Int INT012)
  67.  
  68. ;------------------------------------------------------------------------------
  69.  
  70.     PROC001()
  71.     PROC002()
  72.     PROC004()
  73.     End
  74.  
  75. ;------------------------------------------------------------------------------
  76.  
  77.     Procedure PROC003()
  78.  
  79.     Int      INT005
  80.  
  81.     Print STRING003
  82.     For INT005 = 1 To 8
  83.         TINT001(INT005) = GetX()
  84.         Print TSTRING001(INT005) + Space(INT002)
  85.     Next
  86.  
  87.     EndProc
  88.  
  89.  
  90. ;------------------------------------------------------------------------------
  91.  
  92.     Procedure PROC004()
  93.  
  94.     Int      INT006
  95.     Int      INT007
  96.     Int      INT008
  97.     Boolean  BOOLEAN003
  98.     Time     TIME001
  99.     Time     TIME002
  100.  
  101.     INT007 = 1
  102.     INT006 = 1
  103.     If (INT003) Then
  104.         TIME001 = Time()
  105.         KbdChkOff
  106.     Endif
  107.     PROC003()
  108.     PROC007(INT006, INT007)
  109.     BOOLEAN003 = 0
  110.     :LABEL001
  111.     If (BOOLEAN003) Goto LABEL002
  112.     If (INT003) Then
  113.         TIME002 = Time()
  114.         If (TIME002 - TIME001 > 60 * INT003) Then
  115.             Newline
  116.             DispText 55, 32768 + 2048 + 256 + 128
  117.             Bye
  118.         Endif
  119.     Endif
  120.     Delay INT004
  121.     INT008 = Asc(Inkey())
  122.     If ((((((INT008 == 82) || (INT008 == 68)) || (INT008 == 54)) || (INT008 == 56)) || (INT008 == 32)) || (INT008 == 62)) Then
  123.         INT007 = INT006
  124.         Inc INT006
  125.         If (INT006 > 8) INT006 = 1
  126.         PROC007(INT006, INT007)
  127.     ElseIf ((((((INT008 == 76) || (INT008 == 85)) || (INT008 == 52)) || (INT008 == 50)) || (INT008 == 9)) || (INT008 == 60)) Then
  128.         INT007 = INT006
  129.         Dec INT006
  130.         If (INT006 < 1) INT006 = 8
  131.         PROC007(INT006, INT007)
  132.     Else
  133.         Select Case (INT008)
  134.             Case 115, 83
  135.                 INT007 = INT006
  136.                 INT006 = 1
  137.                 PROC007(INT006, INT007)
  138.                 If (BOOLEAN001) BOOLEAN003 = 1
  139.             Case 97, 65
  140.                 INT007 = INT006
  141.                 INT006 = 2
  142.                 PROC007(INT006, INT007)
  143.                 If (BOOLEAN001) BOOLEAN003 = 1
  144.             Case 99, 67
  145.                 INT007 = INT006
  146.                 INT006 = 3
  147.                 PROC007(INT006, INT007)
  148.                 If (BOOLEAN001) BOOLEAN003 = 1
  149.             Case 113, 81
  150.                 INT007 = INT006
  151.                 INT006 = 4
  152.                 PROC007(INT006, INT007)
  153.                 If (BOOLEAN001) BOOLEAN003 = 1
  154.             Case 100, 68
  155.                 INT007 = INT006
  156.                 INT006 = 5
  157.                 PROC007(INT006, INT007)
  158.                 If (BOOLEAN001) BOOLEAN003 = 1
  159.             Case 108, 76
  160.                 INT007 = INT006
  161.                 INT006 = 6
  162.                 PROC007(INT006, INT007)
  163.                 If (BOOLEAN001) BOOLEAN003 = 1
  164.             Case 117, 85
  165.                 INT007 = INT006
  166.                 INT006 = 7
  167.                 PROC007(INT006, INT007)
  168.                 If (BOOLEAN001) BOOLEAN003 = 1
  169.             Case 13
  170.                 BOOLEAN003 = 1
  171.             Case 63
  172.                 PROC005()
  173.                 PROC003()
  174.                 PROC007(INT006, INT007)
  175.             Case 33
  176.                 PROC006()
  177.                 PROC003()
  178.                 PROC007(INT006, INT007)
  179.             Case 0
  180.                 INT007 = INT006
  181.                 INT006 = 8
  182.                 PROC007(INT006, INT007)
  183.                 If (BOOLEAN001) BOOLEAN003 = 1
  184.             Endif
  185.     End Select
  186.     Goto LABEL001
  187.     :LABEL002
  188.     PROC008(INT006, INT008)
  189.  
  190.     EndProc
  191.  
  192.  
  193. ;------------------------------------------------------------------------------
  194.  
  195.     Procedure PROC006()
  196.  
  197.     String   STRING019
  198.  
  199.     STRING019 = "@X0FEnhanced Message Edit Commands v1.3 by Drew [PWA]@X07"
  200.     Print Chr(13)
  201.     ClrEol
  202.     Print Chr(13)
  203.     Print Space((79 - Len(StripAtx(STRING019))) / 2) + STRING019
  204.     Delay 35
  205.     Print Chr(13)
  206.     ClrEol
  207.     Print Chr(13)
  208.  
  209.     EndProc
  210.  
  211.  
  212. ;------------------------------------------------------------------------------
  213.  
  214.     Procedure PROC008(Int INT009, Int INT010)
  215.  
  216.     Int      INT011
  217.  
  218.     Print Chr(13)
  219.     ClrEol
  220.     INT011 = 3
  221.     Select Case (INT009)
  222.         Case 0
  223.             Print STRING004
  224.             KbdStuff Chr(13)
  225.         Case 1
  226.             Print STRING004
  227.             Print STRING006
  228.             KbdStuff "S"
  229.         Case 2
  230.             Print STRING004
  231.             Print STRING007
  232.             KbdStuff "A"
  233.         Case 3
  234.             GetUser
  235.             Print STRING004
  236.             Print STRING008
  237.             If (U_FSE == 1) Then
  238.                 KbdStuff "F"
  239.             Else
  240.                 KbdStuff "C"
  241.             Endif
  242.         Case 4
  243.             Print STRING004
  244.             Print STRING009
  245.             KbdStuff "Q"
  246.         Case 5
  247.             Print STRING004
  248.             Print STRING010
  249.             KbdStuff "D"
  250.         Case 6
  251.             Print STRING004
  252.             Print STRING012
  253.             KbdStuff "L"
  254.         Case 7
  255.             Print STRING004
  256.             Print STRING013
  257.             KbdStuff "U"
  258.         Case 8
  259.             PROC009(INT010)
  260.             INT011 = 0
  261.     End Select
  262.     Delay INT011
  263.     If (BOOLEAN002) Newline
  264.  
  265.     EndProc
  266.  
  267.  
  268. ;------------------------------------------------------------------------------
  269.  
  270.     Procedure PROC009(Int INT012)
  271.  
  272.     String   STRING020
  273.     String   STRING021
  274.     Boolean  BOOLEAN004
  275.     Int      INT013
  276.     Int      INT014
  277.     Int      INT015
  278.  
  279.     Print STRING005
  280.     INT014 = GetX() - 1
  281.     If (InStr(Mask_AlNum() + Mask_Ascii(), Chr(INT012)) && (INT012 <> 13)) Then
  282.         Print Chr(INT012)
  283.         STRING020 = Chr(INT012)
  284.         INT013 = 1
  285.     Else
  286.         STRING020 = ""
  287.         INT013 = 0
  288.     Endif
  289.     BOOLEAN004 = 0
  290.     :LABEL003
  291.     If (BOOLEAN004) Goto LABEL004
  292.     STRING021 = Inkey()
  293.     Select Case (Asc(STRING021))
  294.         Case 13
  295.             If (STRING020 == "") Then
  296.                 STRING020 = " "
  297.             Endif
  298.             BOOLEAN004 = 1
  299.         Case 27, 21
  300.             Print Chr(13)
  301.             Forward INT014
  302.             ClrEol
  303.             Print Chr(13)
  304.             Forward INT014
  305.             INT013 = 0
  306.             STRING020 = ""
  307.         Case 8
  308.             If (INT013 > 0) Then
  309.                 Print STRING021 + " " + STRING021
  310.                 Dec INT013
  311.                 STRING020 = Left(STRING020, Len(STRING020) - 1)
  312.             Endif
  313.         Case InStr(Mask_AlNum(), Upper(STRING021))
  314.         Case 79 - Len(StripAtx(STRING005))
  315.             Print STRING021
  316.             Inc INT013
  317.             STRING020 = STRING020 + STRING021
  318.     End Select
  319.     Goto LABEL003
  320.     :LABEL004
  321.     INT015 = 3
  322.     STRING020 = Upper(STRING020)
  323.     Select Case (STRING020)
  324.         Case "H"
  325.             Print Chr(8)
  326.             Print STRING014
  327.             StartDisp 2
  328.             DispFile HelpPath() + "HLPE", 1 + 4 + 2
  329.             KbdStuff Chr(13)
  330.             Delay 3
  331.             End
  332.         Case "I"
  333.             Print Chr(8)
  334.             Print STRING015
  335.         Case "SA"
  336.             Print Chr(8) + Chr(8)
  337.             Print STRING016
  338.         Case "SC"
  339.             Print Chr(8) + Chr(8)
  340.             Print STRING017
  341.         Case "SN"
  342.             Print Chr(8) + Chr(8)
  343.             Print STRING018
  344.         Case "S"
  345.             Print Chr(8)
  346.             Print STRING006
  347.         Case "A"
  348.             Print Chr(8)
  349.             Print STRING007
  350.         Case "E"
  351.             Print Chr(8)
  352.             Print STRING011
  353.         Case "F"
  354.             Print Chr(8)
  355.             Print STRING008
  356.         Case "C"
  357.             Print Chr(8)
  358.             Print STRING008
  359.         Case "Q"
  360.             Print Chr(8)
  361.             Print STRING009
  362.         Case "D"
  363.             Print Chr(8)
  364.             Print STRING010
  365.         Case "L"
  366.             Print Chr(8)
  367.             Print STRING012
  368.         Case "U"
  369.             Print Chr(8)
  370.             Print STRING013
  371.     End Select
  372.     Delay INT015
  373.     KbdStuff STRING020
  374.  
  375.     EndProc
  376.  
  377.  
  378. ;------------------------------------------------------------------------------
  379.  
  380.     Procedure PROC005()
  381.  
  382.     If (Exist(PPEPath() + "EMEC.HLP")) Then
  383.         DispFile PPEPath() + "EMEC.HLP", 0
  384.     Endif
  385.  
  386.     EndProc
  387.  
  388.  
  389. ;------------------------------------------------------------------------------
  390.  
  391.     Procedure PROC002()
  392.  
  393.     If (Exist(PPEPath() + "EMEC.PCB")) Then
  394.         DispFile PPEPath() + "EMEC.PCB", 0
  395.     Endif
  396.  
  397.     EndProc
  398.  
  399.  
  400. ;------------------------------------------------------------------------------
  401.  
  402.     Procedure PROC007(Int INT016, Int INT017)
  403.  
  404.     Print Chr(13)
  405.     Forward TINT001(INT017) - 1
  406.     Print TSTRING001(INT017)
  407.     Print Chr(13)
  408.     Forward TINT001(INT016) - 1
  409.     Print TSTRING002(INT016)
  410.  
  411.     EndProc
  412.  
  413.  
  414. ;------------------------------------------------------------------------------
  415.  
  416.     Procedure PROC001()
  417.  
  418.     String   STRING022
  419.     String   STRING023
  420.     String   STRING024
  421.     Int      INT018
  422.  
  423.     STRING022 = PPEPath() + "EMEC.CFG"
  424.     STRING023 = PPEPath() + "LB.CFG"
  425.     STRING024 = PPEPath() + "STRINGS.CFG"
  426.     If (Exist(STRING023)) Then
  427.         INT002 = S2I(ReadLine(STRING023, 1), 10)
  428.         For INT018 = 1 To 8
  429.             TSTRING001(INT018) = ReadLine(STRING023, 1 + INT018 * 2 - 1)
  430.             TSTRING002(INT018) = ReadLine(STRING023, 1 + INT018 * 2)
  431.         Next
  432.     Else
  433.         INT002 = 0
  434.         TSTRING001(1) = "@X08 Save @X07"
  435.         TSTRING002(1) = "@X4F SAVE @X07"
  436.         TSTRING001(2) = "@X08 Abort @X07"
  437.         TSTRING002(2) = "@X4F ABORT @X07"
  438.         TSTRING001(3) = "@X08 Cont @X07"
  439.         TSTRING002(3) = "@X4F CONT @X07"
  440.         TSTRING001(4) = "@X08 Quote @X07"
  441.         TSTRING002(4) = "@X4F QUOTE @X07"
  442.         TSTRING001(5) = "@X08 Delete @X07"
  443.         TSTRING002(5) = "@X4F DELETE @X07"
  444.         TSTRING001(6) = "@X08 List @X07"
  445.         TSTRING002(6) = "@X4F LIST @X07"
  446.         TSTRING001(7) = "@X08 Upload @X07"
  447.         TSTRING002(7) = "@X4F UPLOAD @X07"
  448.         TSTRING001(8) = "@X08 *Other @X07"
  449.         TSTRING002(8) = "@X4F *OTHER @X07"
  450.     Endif
  451.     If (Exist(STRING022)) Then
  452.         If (Lower(ReadLine(STRING022, 1)) == "yes") Then
  453.             BOOLEAN001 = 1
  454.         Else
  455.             BOOLEAN001 = 0
  456.         Endif
  457.         If (Lower(ReadLine(STRING022, 2)) == "yes") Then
  458.             BOOLEAN002 = 1
  459.         Else
  460.             BOOLEAN002 = 0
  461.         Endif
  462.         INT004 = S2I(ReadLine(STRING022, 3), 10)
  463.     Else
  464.         BOOLEAN001 = 1
  465.         BOOLEAN002 = 1
  466.         INT004 = 1
  467.     Endif
  468.     If (Exist(STRING024)) Then
  469.         STRING003 = ReadLine(STRING024, 1)
  470.         STRING004 = ReadLine(STRING024, 2)
  471.         STRING005 = ReadLine(STRING024, 3)
  472.         STRING006 = ReadLine(STRING024, 4)
  473.         STRING007 = ReadLine(STRING024, 5)
  474.         STRING008 = ReadLine(STRING024, 6)
  475.         STRING009 = ReadLine(STRING024, 7)
  476.         STRING010 = ReadLine(STRING024, 8)
  477.         STRING012 = ReadLine(STRING024, 9)
  478.         STRING013 = ReadLine(STRING024, 10)
  479.         STRING014 = ReadLine(STRING024, 11)
  480.         STRING015 = ReadLine(STRING024, 12)
  481.         STRING016 = ReadLine(STRING024, 13)
  482.         STRING017 = ReadLine(STRING024, 14)
  483.         STRING018 = ReadLine(STRING024, 15)
  484.         STRING011 = ReadLine(STRING024, 16)
  485.     Else
  486.         STRING003 = "@X0FMsg Commands [?=help] @X07"
  487.         STRING004 = "@X0FExecuting Msg Cmd: @X07"
  488.         STRING005 = "@X0FOther Msg Cmd: @X07"
  489.         STRING006 = "@X04Save current message@X07"
  490.         STRING007 = "@X04Abort message entry@X07"
  491.         STRING008 = "@X04Continue message entry@X07"
  492.         STRING009 = "@X04Quote lines@X07"
  493.         STRING010 = "@X04Delete lines@X07"
  494.         STRING012 = "@X04List message@X07"
  495.         STRING013 = "@X04Upload into editor@X07"
  496.         STRING014 = "@X04Help!  I'm a bozo!!@X07"
  497.         STRING015 = "@X04Insert a line@X07"
  498.         STRING016 = "@X04Save & attach file@X07"
  499.         STRING017 = "@X04Carbon copy message@X07"
  500.         STRING018 = "@X04Save & goto next msg@X07"
  501.         STRING011 = "@X04Edit a line@X07"
  502.     Endif
  503.     INT003 = ReadLine(PCBDat(), 89)
  504.  
  505.     EndProc
  506.  
  507.  
  508. ;------------------------------------------------------------------------------
  509. ;
  510. ; Usage report (before postprocessing)
  511. ;
  512. ; ■ Statements used :
  513. ;
  514. ;    2       End
  515. ;    4       ClrEol
  516. ;    107     Goto 
  517. ;    122     Let 
  518. ;    61      Print 
  519. ;    70      If 
  520. ;    3       DispFile 
  521. ;    1       StartDisp 
  522. ;    1       GetUser
  523. ;    5       Delay 
  524. ;    2       Inc 
  525. ;    2       Dec 
  526. ;    2       Newline
  527. ;    1       DispText 
  528. ;    11      KbdStuff 
  529. ;    1       Bye
  530. ;    1       KbdChkOff
  531. ;    4       Forward 
  532. ;    9       EndProc
  533. ;
  534. ;
  535. ; ■ Functions used :
  536. ;
  537. ;    3       *
  538. ;    1       /
  539. ;    27      +
  540. ;    8       -
  541. ;    60      ==
  542. ;    1       <>
  543. ;    4       <
  544. ;    2       <=
  545. ;    4       >
  546. ;    4       >=
  547. ;    59      !
  548. ;    5       &&
  549. ;    21      ||
  550. ;    3       Len(
  551. ;    2       Lower()
  552. ;    2       Upper()
  553. ;    1       Left()
  554. ;    2       Space()
  555. ;    31      Chr()
  556. ;    5       Asc()
  557. ;    3       InStr()
  558. ;    2       Time()
  559. ;    2       StripAtx()
  560. ;    2       Inkey()
  561. ;    2       Mask_AlNum()
  562. ;    2       Mask_Ascii()
  563. ;    1       PCBDat()
  564. ;    7       PPEPath()
  565. ;    23      ReadLine()
  566. ;    5       Exist()
  567. ;    2       S2I()
  568. ;    2       GetX()
  569. ;    1       HelpPath()
  570. ;
  571. ;------------------------------------------------------------------------------
  572. ;
  573. ; Analysis flags : d
  574. ;
  575. ; d - Access PCBOARD.DAT ■ 2
  576. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  577. ;     for many PPE so they can find various informations on the system
  578. ;     (system paths, max number of lines in messages, ...) but it may also
  579. ;     be a way to gather vital informations.
  580. ;     ■ Search for : PCBDAT()
  581. ;
  582. ;------------------------------------------------------------------------------
  583. ;
  584. ; Postprocessing report
  585. ;
  586. ;    2       For/Next
  587. ;    0       While/EndWhile
  588. ;    16      If/Then or If/Then/Else
  589. ;    4       Select Case
  590. ;
  591. ;------------------------------------------------------------------------------
  592. ;                 AEGiS Corp - Break the routines, code against the machines!
  593. ;------------------------------------------------------------------------------
  594.